<?php

namespace App\Repositories;

use App\Models\Region;
use BobCoder\Construct\Foundation\Repository\Repository;
use Illuminate\Support\Facades\Cache;

class RegionRepository extends Repository
{
    protected $model;

    public function __construct()
    {
        $this->model = new Region();
    }


    /**
     *
     *
     * @return array
     * @Author 姿势就是力量
     */
    public function getTreeList()
    {
        $list = Cache::get('region');
        if (!$list) {
            $list = $this->model->select('id', 'pid', 'name', 'level')->get()->toArray();
            $list = generateTree($list, 0);
            Cache::forever('region', $list);
        }

        return $list;
    }


    /**
     * 获取地区名称
     * @param int $id 地区ID
     * @return string
     * @Author 姿势就是力量
     */
    public function getNameById(int $id)
    {
        return $id > 0 ? $this->model->where('id', $id)->value('name') : '其他';
    }


    /**
     * 根据id获取地区全称
     * @param int $id 地区ID
     * @return mixed
     * @Author 姿势就是力量
     */
    public function getMergerName(int $id)
    {
        $name = $id > 0 ? $this->model->where('id', $id)->value('merger_name') : '其他';

        return str_replace(',', '', $name);
    }


}
